Web-based system for digital videos

ABSTRACT

Systems and methods are provided for adding and displaying interactive annotations for existing online hosted videos. A graphical annotation interface allows the creation of annotations and association of the annotations with a video. Annotations may be of different types and have different functionality, such as altering the appearance and/or behavior of an existing video, e.g. by supplementing it with text, allowing linking to other videos or web pages, or pausing playback of the video. Authentication of a user desiring to perform annotation of a video may be performed in various manners, such as by checking a uniform resource locator (URL) against an existing list, checking a user identifier against an access list, and the like. As a result of authentication, a user is accorded the appropriate annotation abilities, such as full annotation, no annotation, or annotation restricted to a particular temporal or spatial portion of the video.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 12/389,359, filed Feb. 19, 2009, which claims thebenefit of U.S. Provisional Application 61/058,459, filed on Jun. 3,2008, each of which is incorporated by reference herein in its entirety.

TECHNICAL FIELD

The disclosed embodiments relate generally to the collaborativegeneration of interactive features for digital videos, and in particularto interactive video annotations enabling control of video playbacklocations and creation of interactive games.

BACKGROUND

Conventional web-based systems permitting the storage and display ofdigital videos typically only support traditional playback of a videousing conventional controls such as those for manually starting,stopping, or pausing a video, for manually setting playback to begin ata different portion of the video, and the like.

SUMMARY

The present invention includes systems and methods for modifyingplayback of online hosted videos via interactive annotations, allowingthe creation of interactive games.

A video may have associated with it one or more annotations, whichmodify the appearance and/or behavior of a video as it was originallysubmitted to an online video hosting site. Some examples of annotationsare graphical text box annotations, which display text at certainlocations and certain times of the video, and pause annotations, whichhalt playback of the video at a specified time within the video. Someannotations, e.g. a graphical annotation (such as a text box annotation)comprising a link to a particular portion of a target video, areassociated with a time of the target video, which can be either thevideo with which the annotation is associated, or a separate video.Selecting such annotations causes playback of the target video to beginat the associated time. Such annotations can be used to constructinteractive games using videos, such as a game in which clicking ondifferent portions of a video leads to different outcomes.

The features and advantages described in this summary and the followingdetailed description are not all-inclusive. Many additional features andadvantages will be apparent to one of ordinary skill in the art in viewof the drawings, specification, and claims presented herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system architecture for allowingannotation of online hosted videos, according to one embodiment.

FIG. 2 illustrates different types of annotations that may be added to avideo, according to one embodiment.

FIG. 3 depicts a user interface for creating the annotations of FIG. 2,according to one embodiment.

FIG. 4 illustrates the steps involved in adding annotations to videos,according to one embodiment.

FIG. 5 illustrates an annotation interface allowing the addition ofannotations and providing information on existing annotations, accordingto one embodiment.

FIGS. 6A-6C illustrate an example game that employs annotations.

The figures depict various embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a system architecture in accordance withone embodiment. As illustrated in FIG. 1, a video hosting server 108includes a front end server 124, a video server 126, a network interface122, a video database 128, and a user database 140. Other conventionalfeatures, such as firewalls, load balancers, application servers,failover servers, site management tools, and so forth are not shown soas to more clearly illustrate the features of the system. Examples of asuitable video hosting server 108 for implementation of the systeminclude the YouTube™ and Google Video™ websites; other video hostingsites are known as well, and can be adapted to operate according theteaching disclosed herein. It will be understood that the term “website”represents any system and method of providing content and is notintended to be limited to systems that support content provided via theInternet or the HTTP protocol. The various servers are conventionallyimplemented, whether as a single piece of software or hardware or asmultiple pieces of software or hardware and can couple to the network105 via the network interface 122. In general, functions described inone embodiment as being performed on the server side can also beperformed on the client side in other embodiments if appropriate.

A client 130 executes a browser 132, and connects to the front endserver 124 via a network 105, which is typically the Internet, but mayalso be any network, including but not limited to a LAN, a MAN, a WAN, amobile, wired or wireless network, a private network, or a virtualprivate network. While only a single client 130 and browser 132 areshown, it is understood that very large numbers (e.g., millions) ofclients are supported and can be in communication with the video hostingserver 108 at any time. The client 130 may include a variety ofdifferent computing devices. Examples of client devices 130 are personalcomputers, digital assistants, personal digital assistants, cellularphones, mobile phones, smart phones or laptop computers. As will beobvious to one of ordinary skill in the art, the present invention isnot limited to the devices listed above.

In some embodiments, the browser 132 includes an embedded video player134 such as, for example, the Flash™ player from Adobe Systems, Inc. orany other player adapted for the video file formats used in the videohosting video hosting server 108. A user can access a video from thevideo hosting server 108 by browsing a catalog of videos, conductingsearches on keywords, reviewing play lists from other users or thesystem administrator (e.g., collections of videos forming channels), orviewing videos associated with a particular user group (e.g.,communities).

Video server 126 receives uploaded media content from content providersand allows content to be viewed by client 130. Content may be uploadedto video server 126 via the Internet from a personal computer, through acellular network from a telephone or PDA, or by other means fortransferring data over network 105 known to those of ordinary skill inthe art. Content may be downloaded from video server 126 in a similarmanner; in one embodiment media content is provided as a file downloadto a client 130; in an alternative embodiment, media content is streamedclient 130. The means by which media content is received by video server126 need not match the means by which it is delivered to client 130. Forexample, a content provider may upload a video via a browser on apersonal computer, whereas client 130 may view that video as a streamsent to a PDA. Note also that video server 126 may itself serve as thecontent provider. Communications between the client 130 and videohosting server 108, or between the other distinct units of FIG. 1, maybe encrypted or otherwise encoded.

Users of clients 130 can also search for videos based on keywords, tagsor other metadata. These requests are received as queries by the frontend server 124 and provided to the video server 126, which isresponsible for searching the video database 128 for videos that satisfythe user queries. The video server 126 supports searching on any fieldeddata for a video, including its title, description, tags, author,category and so forth.

Users of the clients 130 and browser 132 can upload content to the videohosting server 108 via network 105. The uploaded content can include,for example, video, audio or a combination of video and audio. Theuploaded content is processed and stored in the video database 128. Thisprocessing can include format conversion (transcoding), compression,metadata tagging, and other data processing. An uploaded content file isassociated with the uploading user, and so the user's account record isupdated in the user database 140 as needed.

For purposes of convenience and the description of one embodiment, theuploaded content will be referred to a “videos”, “video files”, or“video items”, but no limitation on the types of content that can beuploaded are intended by this terminology. Each uploaded video isassigned a video identifier when it is processed.

The user database 140 is responsible for maintaining a record of allusers viewing videos on the website. Each individual user is assigned auser ID (also referred to as a user identity). The user ID can be basedon any identifying information, such as the user's IP address, username, or the like. The user database may also contain information aboutthe reputation of the user in both the video context, as well as throughother applications, such as the use of email or text messaging. The userdatabase may further contain information about membership in usergroups, e.g. a group of users that can view the same annotations. Theuser database may further contain, for a given user, a list ofidentities of other users who are considered friends of the user. (Theterm “list”, as used herein for concepts such as lists of authorizedusers, URL lists, and the like, refers broadly to a set of elements,where the elements may or may not be ordered.)

The video database 128 is used to store the received videos. The videodatabase 128 stores video content and associated metadata, provided bytheir respective content owners. The video files have metadataassociated with each file such as a video ID, artist, video title,label, genre, and time length.

An annotation server 150 provides the ability to view and addannotations to videos in the video database 128. The annotation server150 collects various annotations—such as text boxes, “thought bubbles”,and the like—from uploads by a user or the owner of a video, frompublishers, or as a result of video analysis techniques. It then storesthese annotations within an annotation database 154. The annotationserver 150 also provides to entities such as the client 130 or the videohosting server 108, for a given video, annotations stored within theannotation database 154 for that video. Generally, an annotationmodifies the behavior of an otherwise non-interactive video, providinginteractive overlays with which a user can interact, or altering theusual flow of playback of the video, for example. Examples ofinteractive overlays include text boxes, thought bubbles, spotlights,hyperlinks, menus, polls, and the like, any of which can have anarbitrarily sophisticated user interface behavior. In one embodiment,the annotation server 150 is on a separate physical server from thevideo hosting server 108, although in other embodiments the annotationfunctionality is included within the video hosting server 108.

The annotation database 154 maintains an association between eachannotation and the appropriate portion of the annotated video. In oneembodiment, for example, the annotation database 154 stores anidentifier of the annotation type (e.g., a text box) along with anyinformation associated with that type (e.g., a text caption), a timestamp(s) of the video to which the annotation applies (e.g., from time01:05 to time 01:26), an identifier of the video which the annotationannotates, and an identifier of a user who submitted the annotation(e.g., a username). Some types of annotation may also be associated witha link to another web page, video, network object, or the like. Manyother storage implementations for annotations would be equally possibleto one of skill in the art.

A video analysis module 152 can be used by the annotation server 150 toautomatically generate annotations, or to suggest them to a user. Thiscan entail techniques such as speech analysis, vision analysis (e.g.,face detection, object recognition, and optical character recognition(OCR)), or crawling annotations explicitly or implicitly available.

Since annotation of videos may be accomplished from remote locationsover the network 105 by a variety of users, an authentication mechanismcan be used to restrict annotations to only a subset of users. Thus, anauthentication server 170 is provided to verify access by clients 130 toannotation functionality of the annotation server 150. As describedfurther below, authentication may be performed in a number of ways indifferent embodiments, such as using secret links, access control lists,user credibility scores, or permissions based on community moderation.In one embodiment, a three-tiered permissions system is employed, with afirst, lowest permission tier for users who can only view and interactwith annotations of a video by clicking on links, a second, higherpermission tier for those users who can add or modify their ownannotations, and a third, highest permission tier for those users whocan also modify and delete any annotations in the video. The use ofsecret links employs a URL list 171, which associates videos with a URLthrough which access to an annotation interface is obtained. In oneembodiment, the authentication server 170 is implemented as a componentof video hosting server 108.

FIG. 2 illustrates some different types of interactive annotations(hereinafter “annotations”) that may be added to a video, according toone embodiment. A main video area 202 displayed on the client 130 playsa video stored in the video database 128 and served to the client 130 bythe video server 126. Playback can be controlled via, for example, avideo controls area 204. In the illustrated example, three distinctannotations 205-215 have been added. Annotations 205 and 210 are textboxes and thought bubbles, which display static text. Annotation 215 isa spotlight that displays text, e.g. “What's behind the window?” inresponse to a user hovering the mouse within its boundaries. Any ofthese annotation types can have a time range during which it is active,e.g. from a time 0:15 to 0:36. For example, the text box 205 could beset to appear 15 seconds into the playing of the video and disappear 21seconds later, after a user has had a chance to read it.

Any of these annotation types may also have arbitrarily sophisticatedpresentation, such as shape and text coloring and styling, or associatedactions, such as displaying additional annotations or redirecting theuser to a target web-based location such as a uniform resource locator(URL) upon being activated, such as by a mouse click, mouse over, pressof a key corresponding to the annotation, or the like. The targetlocation to which control is transferred could include an advertisement,or content including an advertisement. For example, clicking onspotlight 215 could lead to a web page describing a particular product.The target location could also cause display of an object or scene takenfrom a different perspective, e.g. the back side of an object taken froma different camera angle. Additionally, the target location could have alink, button, or annotation that transfers control back to the originalvideo, instead of to a different video. In one embodiment, control canbe transferred back to a particular moment in the original video, e.g.,as specified by a URL encoding the video identifier and an identifier ofa time in the video, such as “t=0:22”, denoting a time 22 seconds intothe video. For example, in one embodiment, specifying a URLhttp:www.videosite.com/watch?v=9xEEyO9q&t=0:22 as the target videocauses playback of the video identified in the video database 128 by theidentifier “9xEEyO9q” at a time 22 seconds into the video. In oneembodiment, specifying a time but omitting the video identifier causesplayback of the current video at the specified time. Such uses of timestamps in URLs can be used to construct, for example, a branching seriesof pages, which can be used to create an interactive storyline within asingle video. This allows, for example, rapid transfer to another videoportion, without the delay entailed by obtaining a different video. Inone embodiment, an annotation can be displayed conditionally, forexample if a user mouses over another annotation, when that otherannotation is displayed either at the same time or a later time.

Annotations may also be added to modify the playback of the video,rather than to present an interactive graphical interface. For example,a pause annotation causes playback of the video to halt for a given timedelay, including an unlimited time. This allows, for example, anarbitrary amount of time for users to make a choice before the videocontinues. Using the time stamps in URLs as described above, one canmodify the playback of a video so that, for example, clicking (or evenpositioning the mouse over) a door will seek to the portion of the videothat displays the door opening and the room behind it. This can increasethe level of interactivity in a video to a degree similar to that of acomputer game.

The use of various types of annotations can be used to modify standardlinear video viewing in a number of different ways. They could be usedto implement, for example, a menu-style interface, in which the videodisplays several choices via annotations with links to other pages, andthen pauses the video to allow the user to select one of the choices.The menu items could be still annotations, animated video annotations,and the like, and could be displayed in a traditional list of items, asseparate labeled visual objects, or in a variety of other manners. Theycould also be used to implement branching storylines, where clicking onone annotation leads to one continuation of the video, and clicking on adifferent annotation leads to a different continuation. For example,annotations could be used to implement an interactive game of “rock,paper, scissors”, in which, for instance, clicking on an annotationcorresponding to a “rock”, “paper”, or “scissors” menu item leads to aseparate video or portion of the same video depicting a tie, a win, or aloss, respectively, each outcome potentially leading to the display ofadditional annotations representing a second round of the game. Forexample, FIG. 6A depicts a choice, in which the user can select “Rock”,“Paper”, or “Scissors” via the text boxes 605-615. Presuming that thecomputer's choice (or online human opponent's choice) choice is“Scissors”, then choosing the “Rock” text box 605 leads to the victoryvideo displayed in FIG. 6B, and choosing the “Paper” text box 610 leadsto the loss video of FIG. 6C. Thus, an annotation can have associateddecision logic such as if-then-else decisions that are performed when auser clicks or selects the annotation). The menu items could also beused to implement multi-perspective storylines, wherein clicking on theannotated face of an actor leads to seeing the remainder of the storyfrom that actor's perspective.

Another example is a game in which a user clicks or selects annotationsindicating various forks in a storyline of a video. If a user chooses afirst annotation, the video jumps to a first portion of the video or toa second video. If a user chooses a second annotation, the video jumpsto a second portion of the video or to a third video. Thus, a game wherethe user chooses the progression of the story is implemented. Such agame could be supported by a single video having all possible jumpdestinations in it, by multiple videos, each representing thedestination of various jumps, or by a combination of a video with mostof the jump destinations and other videos with the remainder of thedestinations.

FIG. 3 depicts a user interface for manually creating the annotations ofFIG. 2, according to one embodiment. Annotation icons 302-305 correspondto four annotation types (speech bubbles, text boxes, spotlights, andpauses, respectively); selecting one of them and then clicking on theplaying video creates an annotation of that type at the location andtime corresponding to the click. The annotation then has default values,such as text captions, time ranges, boundaries, and associated URLs. InFIG. 3, editing regions 310, 305, and 315 correspond to displayedannotations 205, 210, and 215, respectively, and the contents thereofcan be edited to change the values of the caption. Editing region 310,for example, comprises a text caption 310A, a time range 310B, and alink 310C. The link can be, for example, a page within the video servicethat denotes a watch page for a video or that denotes a channeldisplaying thumbnails for several related videos. The text caption 310Ahas been set to the value “Happy birthday mom” by the user, and the timerange 310B is set to last from 0:00:03, fifth frame, to 0:00:13, thirdframe, and the link 310C does not yet have a specified value. Editing ofannotations can also be accomplished graphically; for example, theboundary of callout 215 can be changed by dragging on the handles 215Aassociated with the boundaries.

As an alternative or addition to manually creating the annotations usingthe user interface of FIG. 3, the video analysis module 152 of FIG. 1can be used to automatically detect temporal and spatial locations toadd annotations, to determine their associated values, and/or to controlthe behavior of existing annotations.

One example for such analysis is face detection, which can be used inthe video of FIG. 3 to detect the face of the boy in the images as ahuman face and to suggest the creation of a text bubble in associationtherewith, or it could be used to automatically provide or suggest acaption describing the recognized face.

Another example could include applying object recognition methods basedon local descriptor matching. (See, for example, “A PerformanceEvaluation of Local Descriptors”, Mikolajczyk, K.; Schmid, C., IEEETransactions on Pattern Analysis and Machine Intelligence, Volume 27,Issue 10:1615-1630). Such object recognition can identify instances ofknown textured objects, such as locations, buildings, books, CD covers,and the like. (Example images for training recognition of such objectscan be readily found in product/location catalogs which associate theproduct name with one or more images of the product). Once an object,such as the cover of a particular CD, is detected, the manual annotationprocess can be simplified by providing an educated guess regarding theobject's spatial and temporal positioning.

Recognized objects can then be associated with annotations, such aslinks presenting more information, e.g. from a given viewpoint. Forexample, events can be presented from a national perspective by usingobject recognition to identify objects associated with a certainnationality and presenting associated information, e.g. associating,with the Indian team members of a cricket match, a link to the nextevent that the team will be participating in. As another example, anathlete recognized using object recognition can be associated with alink or other annotation data that provides statistics, personalinformation, etc. on the athlete.

Additionally, in conjunction with a search index of a search engine suchas Google™ or YouTube™, if an object in a video is indeed recognized,then a phrase describing that product could be executed against thesearch index and the top search result suggested as a link for theobject (e.g., searching for the title of a recognized music CD andlinking to a product search page corresponding to that title).

In one embodiment, an annotation link corresponds to a search query sothat if a user clicks on the annotation, the user will see a searchresult page for the query. For example, a user may view all videosposted by a person in the video who has been identified by the user andwhose name has been used as a search term. This type of annotationallows the results page to be up to date since a search on a search termassociated with an annotation will not always yield the same resultspage.

Object recognition could further be used to identify locations ofinterest, and in combination with “geotagged” videos in which locationinformation is embedded, videos related to the recognized location couldbe provided or suggested as links.

Object recognition could further be augmented by tracking the movementof the object across frames, thereby moving any associated annotationsalong with it. For example, if the boy moved his position in the variousframes of the video, object recognition could be used to track the boy'sface as he moves and to automatically reposition the text bubble 210near the detected face in each frame. This would be a type of annotationthat moves within the frame in connection with an object in the frame.In the case of a Flash player, analysis of the video would preferably bedone on the server while display of the annotation in different framelocations during video play would generally be achieved within theplayer as the object moves within the video.

Yet another type of analysis is optical character recognition (OCR), thedetails of which are known to one of skill in the art. For example,words on a billboard could be recognized using OCR and a correspondingtextual caption automatically provided or suggested for the billboard.

FIG. 4 illustrates steps involved in adding annotations to videos,according to one embodiment. The client 130 requests a video from thevideo server 108 using the network 105. The front end server 124 of thevideo hosting server 108 receives the request and delegates to the videoserver 126, which obtains the video from the video database 128 andprovides it 410 to the client 130. In one embodiment, the video hostingserver 108 then delegates to the annotation server 150 to provide theannotation user interface; in other embodiments, the video hostingserver 108 requests the annotations for the video from the annotationserver 150 and then itself provides the annotation user interface,providing any annotations created via the user interface to theannotation server for storage. In one embodiment, the providedannotation user interface differs depending on the identity of the userdoing the annotation. For example, if the annotating user is not theowner of the video (e.g., the one who submitted the video to the videohosting server 108), then the user could be provided an editinginterface such as that already described in FIG. 3. In some embodiments,only owners of a video or people specified by the owner may annotate avideo. In some embodiments, only owners of a video or categories ofpeople specified by the owner (e.g., people on the owners friends list)may annotate a video. In some embodiments, anyone may annotate a video.If the annotating user is the owner of the video, or some other userwith similar privileges, then a more full-featured annotation interfacesuch as that in FIG. 5 can be provided.

FIG. 5 illustrates an annotation interface 500 that both allows theaddition of annotations and also provides information on all existingannotations associated with the video. In some embodiments, only anowner may use such an interface. In other embodiments, a wider group ofusers may use such an interface. A video area 505 displays the video,and annotation editing controls 507 allow the addition of annotations tothe video in a manner similar to that of controls 302-305 in FIG. 3. Anannotation list 510 displays a list of all the annotations currentlyassociated with a video, including the type, the associated textualcaption, the time of the video to which the annotation applies, the userwho submitted the annotation, and the like. A visual timeline 515graphically displays the time locations of the various annotationsassociated with the video. For example, a marker 516 indicates thelocation of a newly-added Pause annotation, and dragging the marker 516changes the duration and/or time location of the pause.

Referring again to FIG. 4, the determination of which type of annotationuser interface to provide (e.g., that of the owner, of that of anotheruser)—which can be used to control the degree to which annotation may beadded—may involve the use of the authentication server 170, whichauthenticates 420 the user. The authentication server decides indifferent ways in different embodiments what access to annotations agiven user has. In one embodiment, the authentication server 170 onlyallows creation of annotations by the owner of the video. In thisembodiment, the authentication server 170 consults the user database 140to determine the identity (e.g., the username) of the owner of the videoand compares it to the identity of the currently active user. If thecurrently active user has no identity (e.g., is not signed in), or theidentity does not match that of the owner of the video, then the abilityto annotate is not provided.

In another embodiment, the owner of the video grants access to users byproviding them with a special URL associated with that video. Forexample, referring again to FIG. 5, the owner interface 500 includes aURL area 520 that lists a URL associated with the video in the URL list171. The owner may then copy this URL and distribute it as desired toother users who the owner wishes to have annotation abilities, e.g. byemailing the URL to friends, posting it on a web page available tofriends, and the like. Then, when a user enters the URL, theauthentication server 170 compares the URL to those in the URL list 171for the given video; if the URL matches, then an annotation userinterface is provided. In case the URL becomes too widely-distributedand an excessive number of unwanted annotations are being added to thevideo, the owner may use button 525 to disable the addition of furtherannotations, in which case the URL becomes invalid for purposes offurther annotation.

In yet another embodiment, the owner may grant annotation permissions toparticular users of the video hosting server 108, e.g. by specifying alist of authorized usernames. The permissions can be to annotate, inwhich case any user on the list would be provided with an annotationinterface when viewing that video. In another embodiment, thepermissions are to suggest annotations, in which case the user interfacewould allow tentative annotations to be added but not actually displayedduring playback until approved by the owner or other authorized user.The permissions could also be restricted to allowing annotation ofparticular temporal portions or physical areas of the video. This can beimplemented by allowing the owner to define a “collaborative region” inhis or her video using the same spatial and temporal controls providedby the annotations editor, such as by specifying a time range usingcontrols such as the time range control 310B of FIG. 3 and an area bygraphically selecting the region in the video area 202. Data definingthe collaborative region can then be stored, e.g., within the annotationdatabase 154. With the collaborative region defined, other usersdetermined to be collaborators of the video owner (e.g., thoseconsidered “friends” of the user) are permitted to add annotations tothe video, but only within the spatial and temporal extent of thespecified collaborative region.

In yet another embodiment, the access control lists need not be strictlypredefined by the owner or other authorized users, but can bedynamically determined based on external factors. For example, the listscould be based on credibility scores of the user (the credibility scoresbeing calculated by, e.g., monitoring how many previous annotations bythis contributor were deleted by content owners, or by communitymoderation actions such as users expressing approval or disapproval ofthe user's video ratings, such as via “thumbs-up” or “thumb-down”indicators) or of those considered friends of the user in the userdatabase 140 (e.g., based on activities such as active email exchanging,or on explicit indications of friendship, such as adding someone to a“friends” list).

In still another embodiment, annotations are defined in a layeredapproach in which the creator of the annotation determines visibility ofthe annotation at video playback time. In this approach, different usersor groups of users may freely define their own annotations, but theresulting annotations will only be visible to those users or groups whenthe video is played.

After the authorization server 170 has determined which annotationinterface the user is authorized to see—such as the interfaces of FIGS.3 or 5, or a basic playback interface not allowing the creation ofannotations—the annotation server 150 then provides 430 that annotationinterface to the user, optionally along with any pre-existingannotations for that video. If the interface allows the creation ofannotations, then the user uses the interface to specify the propertiesof the annotations. The results are then transmitted to the videodatabase 128, e.g. in response to the user selecting the publish button525 of FIG. 5 after having specified the desired annotations, which thenreceives 440 and stores the annotations.

A similar process occurs when viewing an annotated video. First, theclient 130 requests a video from the video server 108 using the network105. The front end server 124 of the video hosting server 108 receivesthe request and delegates to the video server 126, which obtains thevideo from the video database 128. The video hosting server 108 thenobtains the appropriate annotations from the annotation database 154 ofthe annotation server, optionally subject to authentication of the userby the authorization server 170. In one embodiment, the video hostingserver obtains all the annotations for the video as the video is beingloaded. In other embodiments, annotations are streamed as the videoprogresses, or are sent in several predefined chunks.

The annotations that are appropriate can vary in different embodiments.In one embodiment, all annotations are provided, regardless of theuser's identity. In another embodiment in which layers are employed,only those annotations created by the user viewing the video, or bymembers of a group to which the user belongs, are provided. Theannotation server 150 may also convert the annotations to a suitableformat for the particular client 130 based on knowledge about theclient; for example, a translation of the text of the annotation can beperformed if the client is in a locale with a language different fromthat of the annotation, and annotations not supported by the client,such as animated video annotations for a simple client limited to text,can be suppressed.

With the proper set of annotations selected and suitably formatted, theannotation server 150 then provides these annotations to the client 130,which displays them in conjunction with the playing video, thusmodifying the appearance and/or behavior of the video, e.g. using thetypes of annotations described above in conjunction with FIGS. 2 and 3.For example, if the client 130 encounters any of annotation types 205,210, 215 of FIG. 2, it will display textual labels in association with aportion of the video designated by the annotation. If an annotation hasan associated hyperlink, then the client 130 will display the hyperlinkand will take an action, such as displaying a web page linked to by thehyperlink, within a web browser, e.g. a web browser window in which thevideo and annotations were currently presented. If the annotation is ofthe Pause type, and the client 130 reaches the beginning of the timeperiod to which the Pause annotation corresponds, then the client 130halts playback of the video for a period of time specified by the Pauseannotation, and then resumes playback after the expiration of thespecified period of time.

It is appreciated that the exact components and arrangement thereof, theorder of operations, and other aspects of the above description arepurely for purposes of example, and a wide variety of alternativecomponent arrangements and operation orders would be equally possible toone of skill in the art. For example, the annotation server 150 of FIG.1 could be part of the video hosting server 108, a server on the samelocal network as the video hosting server, or on a remote network fromthe video hosting server. As another example, the authentication server170 could be separate from the video hosting server, or could be acomponent thereof. Further, some clients 130 could be configured not tocommunicate with the annotation server 150, or the annotation server 150not to provide annotations to the client 130, in which case the client130 obtains un-annotated video (e.g. clients in each country or languagecan have their own set of annotations). In some embodiments, the client130 can perform annotation offline, without a network connection to theannotation server 150, and later synchronize the annotations with theannotation server 150 when a network connection becomes available.

Reference in the specification to “one embodiment” or to “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiments is included in at least oneembodiment of the invention. The appearances of the phrase “in oneembodiment” in various places in the specification are not necessarilyall referring to the same embodiment.

It should be noted that the process steps and instructions of thepresent invention can be embodied in software, firmware or hardware, andwhen embodied in software, can be downloaded to reside on and beoperated from different platforms used by a variety of operatingsystems.

The present invention also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but is not limited to, any type ofdisk including floppy disks, optical disks, CD-ROMs, magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, application specific integratedcircuits (ASICs), or any type of media suitable for storing electronicinstructions, and each coupled to a computer system bus. Furthermore,the computers referred to in the specification may include a singleprocessor or may be architectures employing multiple processor designsfor increased computing capability.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general-purposesystems may also be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present invention is not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the present invention as described herein, and any references belowto specific languages are provided for disclosure of enablement and bestmode of the present invention.

While the invention has been particularly shown and described withreference to a preferred embodiment and several alternate embodiments,it will be understood by persons skilled in the relevant art thatvarious changes in form and details can be made therein withoutdeparting from the spirit and scope of the invention.

Finally, it should be noted that the language used in the specificationhas been principally selected for readability and instructionalpurposes, and may not have been selected to delineate or circumscribethe inventive subject matter. Accordingly, the disclosure of the presentinvention is intended to be illustrative, but not limiting, of the scopeof the invention, which is set forth in the following claims.

What is claimed is:
 1. A method comprising: displaying on a clientdevice a first video provided by a video hosting server; displaying onthe client device an annotation with the first video; and responsive toa user selection of the annotation, displaying on the client device asecond video provided by the video hosting server different than thefirst video, the second video displayed starting at a playback timeassociated with the annotation.
 2. The method of claim 1, wherein theannotation specifies a URL encoding an identifier of the second videoand encoding the playback time.
 3. The method of claim 2, wherein theURL is provided during creation of the annotation by a user of the videohosting server.
 4. The method of claim 1, wherein the playback time isat a beginning point of the second video.
 5. The method of claim 1,wherein the playback time is not at a beginning point of the secondvideo.
 6. The method of claim 1, wherein the annotation is associatedwith a time range of the first video during which the annotation isdisplayed.
 7. The method of claim 1, wherein the annotation is providedby the video hosting server to the client device for display.
 8. Amethod comprising: displaying on a client device a video provided by avideo hosting server; displaying on the client device an annotation withthe video; and responsive to a user selection of the annotation at afirst playback time of the video, displaying on the client device thevideo at a second playback time associated with the annotation.
 9. Themethod of claim 8, wherein the annotation specifies a URL encoding anidentifier of the video and encoding the second playback time.
 10. Themethod of claim 9, wherein the URL is provided during creation of theannotation by a user of the video hosting server.
 11. The method ofclaim 8, wherein the annotation is associated with a time range of thevideo during which the annotation is displayed.
 12. The method of claim8, wherein the annotation is provided by the video hosting server to theclient device for display.
 13. A non-transitory computer-readablestorage medium having computer-executable instructions that configureone or more processors to perform steps comprising: displaying on aclient device a first video provided by a video hosting server;displaying on the client device an annotation with the first video; andresponsive to a user selection of the annotation, displaying on theclient device a second video provided by the video hosting serverdifferent than the first video, the second video displayed starting at aplayback time associated with the annotation.
 14. The computer-readablestorage medium of claim 13, wherein the annotation specifies a URLencoding an identifier of the second video and encoding the playbacktime.
 15. The computer-readable storage medium of claim 14, wherein theURL is provided during creation of the annotation by a user of the videohosting server.
 16. The computer-readable storage medium of claim 13,wherein the playback time is at a beginning point of the second video.17. The computer-readable storage medium of claim 13, wherein theplayback time is not at a beginning point of the second video.
 18. Thecomputer-readable storage medium of claim 13, wherein the annotation isassociated with a time range of the first video during which theannotation is displayed.
 19. The computer-readable storage medium ofclaim 13, wherein the annotation is provided by the video hosting serverto the client device for display.